package br.com.sap.controle;

import java.util.List;

import br.com.sap.modelo.Categoria;
import br.com.sap.modelo.enums.EnumSituacao;
import br.com.sap.persistencia.servico.CategoriaServico;
import br.com.sap.persistencia.servico.ServicoGenerico;



public class CategoriaControle extends ControleGenerico<Categoria> {

	private Categoria categoria = new Categoria();
	private CategoriaServico categoriaServico = new CategoriaServico();
	private ControleGenerico<Categoria> controleGenerico;
	
	
	
	public Categoria getCategoria() {
		return categoria;
	}


	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}




	public CategoriaServico getCategoriaServico() {
		return categoriaServico;
	}




	public void setCategoriaServico(CategoriaServico categoriaServico) {
		this.categoriaServico = categoriaServico;
	}




	public ControleGenerico<Categoria> getControleGenerico() {
		return controleGenerico;
	}




	public void setControleGenerico(
			ControleGenerico<Categoria> controleGenerico) {
		this.controleGenerico = controleGenerico;
	}




	@Override
	public ServicoGenerico<Categoria> getServico() {
		// TODO Auto-generated method stub
		return this.categoriaServico;
	}

	

	public List<Categoria> getListarCategorias() {
		
			categoriaServico.camposProcura.limpar();
			this.getServico().camposProcura.add(("situacao"), "1", true);
			this.getServico().camposProcura.setCondicional("and");			
			return categoriaServico.procura();
	}
	
	public List<Categoria> getListarCategoriasDesativadas() {
		
			categoriaServico.camposProcura.limpar();
			this.getServico().camposProcura.add(("situacao"), "0", true);
			this.getServico().camposProcura.setCondicional("and");
			return categoriaServico.procura();
	}
	
	public List<Categoria> procuraCategoria(String descricao, String situacao){
	
		
		categoriaServico.camposProcura.limpar();
		
		if(descricao != ""){
		this.getServico().camposProcura.add(("descricao"), descricao, true);
		}
		this.getServico().camposProcura.add(("situacao"), situacao, true);	
		this.getServico().camposProcura.setCondicional("and");
		return categoriaServico.procura();
		
	}
	
	public int registrarCategoria(Categoria categoria){
		int retorno;
		retorno = 0;
		if(antesProcurar(categoria)){	
		
			if(persiste(categoria)){
				retorno = 1;
				}else{
					retorno = 2;
				}
			
		}
		
		
		return retorno;
		
	}
	
	public int desativarCategoria(Categoria categoria){
		int retorno;
		retorno = 0;
		
		categoria.setSituacao(EnumSituacao.INATIVO);
		
			if(persiste(categoria)){
				retorno = 1;
				}else{
					retorno = 2;
				}
			
		
		
		
		return retorno;
		
	}
	
	

	
	
}
